High performance cross platform document viewing

ABSTRACT

A document viewing system is provided that includes a browser receiving one or more user requests to view a document being stored remotely. The browser issues a first request to a server for metadata associated with the document and based on the received metadata determines a selective number of tiles needed for viewing the document. The browser issues a second request to the server requesting the selective number of tiles for viewing the document. The selective number tiles are only those tiles available for viewing in a viewing area in the browser. The server sends the selective number of tiles in parallelized fashion to the browser. The browser receives the selective number of tiles from the server and displays the document to a user.

PRIORITY INFORMATION

This application claims priority from provisional application Ser. No.61/392,252 filed Oct. 12, 2010, which is incorporated herein byreference in its entirety.

BACKGROUND OF THE INVENTION

The invention is related to field of network applications, and inparticular to a browser-based scanning utility.

Traditional document management, requiring extensive use of locallyattached scanning devices, file servers, databases, and the like, haslong been rooted in the technology of yesterday: namely, Windows-basedclient/server technology. A new era of computing is currently beingushered in; one that revolves around portability, cross platformsupport, and a new and growing installed base of mobile devices drivenby Google, the resurgent Apple Inc. and others. Leveraging this new andincreasingly adopted technology environment requires redesigning and, inmany cases, reinventing wheels that no longer fit. Unfortunately, theenterprise document management space is largely tied to legacyclient/server architecture. While most vendors offer a lightweight webclient with limited functionality—to present a veneer of modernity—thebulk of the underlying technology is built on traditional Windows-basedclient server architecture. As Java technology continues to evolve andconsume a greater percentage of development projects worldwide, more andmore leading software companies are leveraging its portability andmulti-platform capabilities to prepare for the next-generation Internet.The next generation Internet is one based on portability, openstandards, and mobile device support. The ability to provide fulldocument management functionality in the absence of traditionalclient/server technology while supporting any web browser on anyplatform along with a wide range of mobile devices presents a number ofunique challenges.

SUMMARY OF THE INVENTION

According to one aspect of the invention, there is provided a documentviewing system. The document viewing system includes a browser thatreceives one or more user requests to view a document being storedremotely. The browser issues a first request to a server for metadataassociated with the document and based on the received metadatadetermines a selective number of tiles needed for viewing the document.The browser issues a second request to the server requesting theselective number of tiles for viewing the document. The selective numbertiles are only those tiles available for viewing in a viewing area inthe browser. The server sends the selective number of tiles inparallelized fashion to the browser. The browser receives the selectivenumber of tiles from the server and displays the document to a user.

According to another aspect of the invention, there is provided a methodof viewing remote documents. The method includes receiving one or moreuser requests using a browser to view a document being stored remotely.Also, the method includes issuing a first request to a server formetadata associated with the document and based on the receivedmetadata. Moreover, the method includes determining a selective numberof tiles needed for viewing the document based on the received metadata.A second request is issued to the server requesting the selective numberof tiles for viewing the document. The selective number tiles are onlythose tiles available for viewing in a viewing area in the browser.Furthermore, the method includes sending the selective number of tilesparallelized fashion to the browser. The browser receives the selectivenumber of tiles from the server and displays the document to a user.

According to another aspect of the invention, there is provided acomputer readable medium for storing a program being executed on acomputer system, the programs performs a method of viewing remotedocuments. The method includes receiving one or more user requests usinga browser to view a document being stored remotely. Also, the methodincludes issuing a first request to a server for metadata associatedwith the document and based on the received metadata. Moreover, themethod includes determining a selective number of tiles needed forviewing the document based on the received metadata. A second request isissued to the server requesting the selective number of tiles forviewing the document. The selective number tiles are only those tilesavailable for viewing in a viewing area in the browser. Furthermore, themethod includes sending the selective number of tiles parallelizedfashion to the browser. The browser receives the selective number oftiles from the server and displays the document to a user.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram illustrating a tile document viewer systemused in accordance with the invention; and

FIG. 2 is a process flow illustrating the steps in displaying one ormore images in accordance with the invention.

DETAILED DESCRIPTION OF THE INVENTION

The invention provides a viewing system allowing a user to viewdocuments that are stored remotely. The viewing system is abrowser-based tool that is executed within a browser environment. Theinventions implements a more efficiently technique of viewing documentswhich minimizes the traditional bottlenecks associated with othersystems in the art.

The invention is implemented in a platform independent framework, whichallows the invention to run on various operating system platforms. Theinvention can be implemented using platform independent computerlanguages, such as Java or the like. This allows the invention to beused freely in various operating system platforms without limiting thefunctionalities of the invention. Moreover, the browser used inaccordance with the invention can use run code from the platformindependent computer languages to operate the objectives of theinvention. In addition, the invention can operate on both conventionalcomputer systems as well as mobile devices and tablets.

FIG. 1 is a schematic diagram illustrating the tile document viewersystem 2 used in accordance with the invention. The viewer system 2includes a user 4 working on a computer system 3 that is executing abrowser 6. The computer system 3 includes a processor, a portablestorage, and processor storage medium. The browser 6 displays a numberof images and information for which the user 4 discerns. Also, thebrowser 6 includes the ability to retrieve information over the Internetand facilitate communications with other computer systems, such as aserver 8. The communication protocols, such as TCP/IP or the like, areused by the browser 6 to communicate with the server 8 and othercomputer systems used in a network. Within the framework of the browser6, applets and other browser-based applications can also be executed.The browser 6 facilitates the ability to view images of documents storedremotely. The invention addresses the issues facing processing imagesand improving throughput by parallelizing the transfer of selectedportions of a document which removes bottlenecks and improves processingefficiency.

The invention's parallelized processing of images allows for instantresponse time allowing the user 4 to experience no delays incommunication with a remote server. By controlling the number of tilesused in image processing, in this case, not transferring and processingtiles which are not viewed, greatly aids in maintaining increasedperformance of the invention. Moreover, the invention further improvesperformance by providing to the user 4 documents in JPG format fordisplay regardless the original format of the documents.

When the user 4 view a selected number of documents using the browser,by clicking on a selected document triggers a request 10 to the browser6 to request all associated metadata for that respected document fromthe server 8. In certain embodiments of the invention, authentication isrequired for the user 4 to have access rights to view documents. Thebrowser 6 prepares a request 16 to retrieve the metadata from the remoteserver 8. The request 16 can include metadata information such asdocument resolution size, number of pages, the amount and type ofannotations, specific end-user permissions, and other document specificinformation. The server 8 includes a processor, a portable storage, andprocessor storage medium.

Once the server 8 receives the request from the browser 6, the server 8validates the request for metadata or documents by confirming thepresence of the proper security nonce. Afterwards, the server 8determines if additional metadata information is needed from themetadata database 30 and retrieves the information. The server 8assembles all required metadata information and prepares a request 18 tobe sent back to the browser 6. Once the request 18 is received by thebrowser 6, the browser 6 analyzes the received metadata information todetermine the total number of tiles or rectangular pieces needed todisplay a document to the user 4 using a compute tile module 14.Moreover, the browser 6 provides to the user 4 the ability to alter thevarious viewing features and functionalities allowed for the user 4.

Based on the tiles needed, the browser 6 sends a request 20 to theserver 8 to provide the necessary tiles for viewing. The inventionefficiently displays a document by determining the tiles needed using acompute view module 14, based on geometry and size of the image file,while not utilizing tiles that are not used or needed for display thatare outside the viewing area. In this case, the browser 6 determines thetiles needed and sends requests 20 to the server 8 to retrieve theneeded tiles. The server 8 receives the requests 20 and checks an imagecache 24 stored locally on the server 8 if the document associated withthe tiles requested are stored therein. If it is determined the documentis stored on the image cache 24, then the server 8 carves the image intoa number of tiles. Afterwards, the server 8 streams the requested tiles22 in parallel back to the browser 6 sending the request. If thedocument is not stored in the image cache 24, the server 8 retrieves thedocuments from the document store 28. Then the server 8 determines whatis the document's file type so as to decide whether to convert thedocument into an image file. The image file is further converted into abrowser renderable format, such as the JPG format. The server 8retrieves the stored JPG format document and using an image processingmodule 26 applies anti-aliasing to the converted image so smoothing canoccur for better readability. Also, the image cache 24 removes theoldest/least used document and replaces it with the new converteddocument. Once this is complete, the browser issues a message 12 to theuser 4 notifying that the image is ready for viewing.

The tiled document viewer system 2 is the primary display interface forthe presentation and manipulation of all documents in the document store28. FIG. 2 is a process flow illustrating the steps in displaying one ormore images in accordance with the invention.

Of the many operations that take place relative to document viewing, thetransmission of the document image to the user's viewer or browser 6 isby far the largest bottleneck. By parallelizing the transfer of selectportions of the document, this bottleneck is eliminated. It is theparallel aspect of the document request/delivery/display process thatenables near instant response time from the remote server 8 and providesthe user 4 with a desktop-like experience. Performance remainsconsistent even when zooming in and out, as those tiles which are not inview are not processed or transferred. Lastly, since all documentformats (e.g. PDF, DOC, etc.) are rendered into JPG for native displayin the browser 6, the user 6 experiences consistent performance andfeature availability (e.g. annotations, email, etc.) regardless of theformat of the original document.

The tiled document viewer system 2 comes into play as soon as the user 4clicks a document name from a displayed list in the browser 6, as shownin step 51. The user 4 has already been authenticated at this point andhas appropriate document viewing privileges. Once a document is selectedfor display, the browser 6 formulates the request 16 for specificdocument metadata from the server 8, as show in step 52. The documentmetadata request includes document resolution, size, number of pages,the amount and type of annotations, specific end user permissions, andmore.

Similar to scanning or eFiling service requests, the server 8 validateseach request 16 for metadata or documents by confirming the presence ofthe proper security nonce—which is passed directly from the browser 6 aspart of the request for document metadata.

The server 8 begins by analyzing the document to determine its size andthen retrieves the additional metadata from the document managementmetadata database 30, as shown in step 53. Once all required data hasbeen assembled, the server 8 returns the collection of metadata to thebrowser 6 owning the request, as shown in step 54. The browser 6receives the metadata response and uses the information to calculate thetotal number of tiles—or rectangular pieces—necessary to divide up therequested document in an optimal manner, as shown in step 55. Inaddition, the browser 6 adjusts viewing features and functionalityaccording to the available permissions assigned to the user 4, as shownin step 56. Specifically, the viewing functionality is either enabled ordisabled as needed to align with granted end user rights.

The browser 6 next utilizes a portion of the returned metadata tocalculate and request only those tiles needed for viewing using acompute view module 14, as shown in step 57. The objective of thelimited tile selection process is to optimize image display bycalculating which tiles are visible based on the geometry of the vieweror browser 6, size of the image file, etc. and leave out all other tilescurrently outside the active viewing area. The server 8 receives thedocument and tile request, as shown in step 58, and first checks itsimage cache 24 for the presence of the requested document. The imagecache 24 implements a Least Recently Used (LRU) methodology whichessentially maintains the most recent/frequently used documents in adynamic cache for quick access.

If the requested document is located in cache 24, as shown in step 59,then the server 8 carves the image into the requested number of tiles,as show in step 60. Once completed, the server 8 streams the requestedtiles in parallel back to the browser 6 owning the request, as show instep 61, and the tiles are received and displayed in the browser 6 inparallel, as shown in step 62. If the requested document is notcurrently in cache, then the server retrieves the document from store 28and prepares it for inclusion in the cache 24, as shown in step 63.Before the retrieved document can be added to the cache 24, the documentfile type must be determined. The server 8 checks to see if theretrieved document is already an image file (e.g. TIFF, BMP, etc.), asshown in step 64, and if so, converts the image to the standard JPGformat, as shown in step 65. If the retrieved document is not currentlyan image file (e.g. PDF, DOC, etc.), the server 8 renders the documentinto a single to multi-page TIFF document, as shown in step 66. Oncerendered to TIFF, the multi-page interim file is quickly and easilyconverted to a browser renderable format, such as JPG, as shown in step67.

At this point, the requested document has been converted to JPG formatand an image processing module 26 applies anti-aliasing to the convertedimage so as to smooth lines and text for better readability, as shown instep 68. Once the anti-aliasing process is complete, the LRU processremoves the oldest/least used document from the image cache 24 andinserts the just-converted JPG document, as shown in step 69.

Once the requested document is converted to JPG and stored in the cache24, it is treated as any other cached document and carved into therequested number of tiles, as shown in step 60, before being streamedback to the UI, as shown in step 61, and displayed in the viewer viaparallel operation, as shown in step 62.

As described herein, the invention provides a viewing system that allowsa user to view documents that are stored remotely. The viewing systemuses a browser-based tool that implements a parallelizing technique ofpreparing for viewing remote documents. The invention uses tiles, whichare rectangular regions of a document, which are compiled to form animage. In particular, not all of the tiles are used instead those tilesneeded to form an image that is within a viewing area are used. Thisminimizes the normal bottlenecks associated other known systems.Resources are not expanded on tiles that are not viewed by a user, onlythose necessary to present the current document view which is often asubset of the whole image. To further increase efficiency, all imagedata is converted into JPG format for viewing in a browser.

Although the present invention has been shown and described with respectto several preferred embodiments thereof, various changes, omissions andadditions to the form and detail thereof, may be made therein, withoutdeparting from the spirit and scope of the invention.

1. A document viewing system comprising: a browser that receives one ormore user requests to view a document being stored remotely, the browserissues a first request to a server for metadata associated with thedocument and based on the received metadata determines a selectivenumber of tiles needed for viewing the document, the browser issues asecond request to the server requesting the selective number of tilesfor viewing the document, the selective number tiles are only thosetiles available for viewing in a viewing area in the browser, the serversends the selective number of tiles in parallelized fashion to thebrowser, the browser receives the selective number of tiles from theserver and displays the document to a user.
 2. The viewing system ofclaim 1, wherein said the server retrieves metadata from a metadatabase.
 3. The viewing system of claim 1, wherein the server comprises animage cache for storing recently used image data for processing.
 4. Theviewing system of claim 3, wherein the server checks the presence of thedocument in the image cache and sends the document to the browser. 5.The viewing system of claim 4, wherein the server replaces the leastused document in the image cache with a recently used document.
 6. Theviewing system of claim 1, wherein the metadata comprises information ofgeometry of the browser, the viewing area, and size of the image file.7. The viewing system of claim 1, wherein the server converts the imagedata of the document into a browser renderable format.
 8. The viewingsystem of claim 1, wherein the server forms the selective number oftiles by assigning a number of rectangular regions to the image data ofthe document.
 9. A method of viewing remote documents comprising:receiving one or more user requests using a browser to view a documentbeing stored remotely; issuing a first request to a server for metadataassociated with the document and based on the received metadata;determining a selective number of tiles needed for viewing the documentbased on the received metadata; issuing a second request to the serverrequesting the selective number of tiles for viewing the document, theselective number tiles are only those tiles available for viewing in aviewing area in the browser; and sending the selective number of tilesin parallelized fashion to the browser, the browser receives theselective number of tiles from the server and displays the document to auser.
 10. The method of claim 9, wherein said the server retrievesmetadata from a metadata base.
 11. The method of claim 9, wherein theserver comprises an image cache for storing recently used image data forprocessing.
 12. The method of claim 11, wherein the server checks thepresence of the document in the image cache and sends the document tothe browser.
 13. The method of claim 12, wherein the server replaces theleast used document in the image cache with a recently used document.14. The method of claim 9, wherein the metadata comprises information ofgeometry of the browser, the viewing area, and size of the image file.15. The method of claim 9, wherein the server converts the image data ofthe document into a browser renderable format.
 16. The method of claim9, wherein the server forms the selective number of tiles by assigning anumber of rectangular regions to the image data of the document.
 17. Acomputer readable medium for storing a program being executed on acomputer system, the programs performs a method of viewing remotedocuments comprising: receiving one or more user requests using abrowser to view a document being stored remotely; issuing a firstrequest to a server for metadata associated with the document and basedon the received metadata; determining a selective number of tiles neededfor viewing the document based on the received metadata; issuing asecond request to the server requesting the selective number of tilesfor viewing the document, the selective number tiles are only thosetiles available for viewing in a viewing area in the browser; andsending the selective number of tiles in parallelized fashion to thebrowser, the browser receives the selective number of tiles from theserver and displays the document to a user.
 18. The computer readable ofclaim 17, wherein said the server retrieves metadata from a metadatabase.
 19. The computer readable of claim 17, wherein the servercomprises an image cache for storing recently used image data forprocessing.
 20. The computer readable of claim 19, wherein the serverchecks the presence of the document in the image cache and sends thedocument to the browser.
 21. The computer readable of claim 20, whereinthe server replaces the least used document in the image cache with arecently used document.
 22. The computer readable of claim 17, whereinthe metadata comprises information of geometry of the browser, theviewing area, and size of the image file.
 23. The computer readable ofclaim 17, wherein the server converts the image data of the documentinto a browser renderable format.
 24. The computer readable of claim 17,wherein the server forms the selective number of tiles by assigning anumber of rectangular regions to the image data of the document.